package com.wang.wangapiclientsdk;

import com.wang.wangapiclientsdk.client.WangApiClient;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

// 标记这是一个配置类, Spring会自动扫描并加载它, 该类里面可以定义Bean
@Configuration
// 从配置文件 (如application.yml) 中读取前缀为"wangapi.client"的配置, 赋值给类中的属性
@ConfigurationProperties("wangapi.client")
// 扫描当前类所在包及子包下的组件 (如@Service、@Component等), 注册到Spring容器中
@ComponentScan
// 自动生成 getter, setter 等方法
@Data
public class WangApiClientConfig {

    private String accessKey;
    private String secretKey;

    /*
     * @Bean 注解表示该方法会创建一个 Bean 对象, 并将其注册到 Spring 容器中.
     * Bean 的名称默认是方法名 (即 wangApiClient)
     */
    @Bean
    public WangApiClient wangApiClient() {
        return new WangApiClient(accessKey, secretKey);
    }
}
